//------------------------------------------------------------------------------
// <auto-generated>
//     This code was auto-generated by com.unity.inputsystem:InputActionCodeGenerator
//     version 1.4.4
//     from Assets/Project/Input/TouchControls.inputactions
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine.InputSystem.Utilities;

public partial class @TouchControls : IInputActionCollection2, IDisposable
{
    public InputActionAsset asset { get; }
    public @TouchControls()
    {
        asset = InputActionAsset.FromJson(@"{
    ""name"": ""TouchControls"",
    ""maps"": [
        {
            ""name"": ""Touch"",
            ""id"": ""25dad16c-e946-4d3e-96df-3597f39daf93"",
            ""actions"": [
                {
                    ""name"": ""FirstTouchContact"",
                    ""type"": ""Button"",
                    ""id"": ""203e7928-abaa-4c92-bb32-dae2ff8de5bd"",
                    ""expectedControlType"": ""Button"",
                    ""processors"": """",
                    ""interactions"": ""Press(behavior=1)"",
                    ""initialStateCheck"": false
                },
                {
                    ""name"": ""FirstTouchPosition"",
                    ""type"": ""Value"",
                    ""id"": ""ccddb64e-e821-49c5-8aea-3ade7578cde1"",
                    ""expectedControlType"": ""Vector2"",
                    ""processors"": """",
                    ""interactions"": """",
                    ""initialStateCheck"": true
                },
                {
                    ""name"": ""SecondTouchContact"",
                    ""type"": ""Button"",
                    ""id"": ""8a026d7d-f27f-42b5-9153-81e25bb495b6"",
                    ""expectedControlType"": ""Button"",
                    ""processors"": """",
                    ""interactions"": ""Press(behavior=1)"",
                    ""initialStateCheck"": false
                },
                {
                    ""name"": ""SecondTouchPosition"",
                    ""type"": ""Value"",
                    ""id"": ""284897fb-538b-4c94-baac-70a791e7de97"",
                    ""expectedControlType"": ""Vector2"",
                    ""processors"": """",
                    ""interactions"": """",
                    ""initialStateCheck"": true
                }
            ],
            ""bindings"": [
                {
                    ""name"": """",
                    ""id"": ""6c8a26d5-31fd-4286-86ce-87efeaf56874"",
                    ""path"": ""<Touchscreen>/touch0/press"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""FirstTouchContact"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": false
                },
                {
                    ""name"": """",
                    ""id"": ""a5663cba-a2da-43c5-8a7c-6ec272e3d2f6"",
                    ""path"": ""<Touchscreen>/touch0/position"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""FirstTouchPosition"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": false
                },
                {
                    ""name"": """",
                    ""id"": ""2e45686f-fc28-4091-b2be-8e15ba7cdc21"",
                    ""path"": ""<Touchscreen>/touch1/position"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""SecondTouchPosition"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": false
                },
                {
                    ""name"": """",
                    ""id"": ""84251712-5737-4e96-a6f9-80f57186fe7c"",
                    ""path"": ""<Touchscreen>/touch1/press"",
                    ""interactions"": """",
                    ""processors"": """",
                    ""groups"": """",
                    ""action"": ""SecondTouchContact"",
                    ""isComposite"": false,
                    ""isPartOfComposite"": false
                }
            ]
        }
    ],
    ""controlSchemes"": []
}");
        // Touch
        m_Touch = asset.FindActionMap("Touch", throwIfNotFound: true);
        m_Touch_FirstTouchContact = m_Touch.FindAction("FirstTouchContact", throwIfNotFound: true);
        m_Touch_FirstTouchPosition = m_Touch.FindAction("FirstTouchPosition", throwIfNotFound: true);
        m_Touch_SecondTouchContact = m_Touch.FindAction("SecondTouchContact", throwIfNotFound: true);
        m_Touch_SecondTouchPosition = m_Touch.FindAction("SecondTouchPosition", throwIfNotFound: true);
    }

    public void Dispose()
    {
        UnityEngine.Object.Destroy(asset);
    }

    public InputBinding? bindingMask
    {
        get => asset.bindingMask;
        set => asset.bindingMask = value;
    }

    public ReadOnlyArray<InputDevice>? devices
    {
        get => asset.devices;
        set => asset.devices = value;
    }

    public ReadOnlyArray<InputControlScheme> controlSchemes => asset.controlSchemes;

    public bool Contains(InputAction action)
    {
        return asset.Contains(action);
    }

    public IEnumerator<InputAction> GetEnumerator()
    {
        return asset.GetEnumerator();
    }

    IEnumerator IEnumerable.GetEnumerator()
    {
        return GetEnumerator();
    }

    public void Enable()
    {
        asset.Enable();
    }

    public void Disable()
    {
        asset.Disable();
    }
    public IEnumerable<InputBinding> bindings => asset.bindings;

    public InputAction FindAction(string actionNameOrId, bool throwIfNotFound = false)
    {
        return asset.FindAction(actionNameOrId, throwIfNotFound);
    }
    public int FindBinding(InputBinding bindingMask, out InputAction action)
    {
        return asset.FindBinding(bindingMask, out action);
    }

    // Touch
    private readonly InputActionMap m_Touch;
    private ITouchActions m_TouchActionsCallbackInterface;
    private readonly InputAction m_Touch_FirstTouchContact;
    private readonly InputAction m_Touch_FirstTouchPosition;
    private readonly InputAction m_Touch_SecondTouchContact;
    private readonly InputAction m_Touch_SecondTouchPosition;
    public struct TouchActions
    {
        private @TouchControls m_Wrapper;
        public TouchActions(@TouchControls wrapper) { m_Wrapper = wrapper; }
        public InputAction @FirstTouchContact => m_Wrapper.m_Touch_FirstTouchContact;
        public InputAction @FirstTouchPosition => m_Wrapper.m_Touch_FirstTouchPosition;
        public InputAction @SecondTouchContact => m_Wrapper.m_Touch_SecondTouchContact;
        public InputAction @SecondTouchPosition => m_Wrapper.m_Touch_SecondTouchPosition;
        public InputActionMap Get() { return m_Wrapper.m_Touch; }
        public void Enable() { Get().Enable(); }
        public void Disable() { Get().Disable(); }
        public bool enabled => Get().enabled;
        public static implicit operator InputActionMap(TouchActions set) { return set.Get(); }
        public void SetCallbacks(ITouchActions instance)
        {
            if (m_Wrapper.m_TouchActionsCallbackInterface != null)
            {
                @FirstTouchContact.started -= m_Wrapper.m_TouchActionsCallbackInterface.OnFirstTouchContact;
                @FirstTouchContact.performed -= m_Wrapper.m_TouchActionsCallbackInterface.OnFirstTouchContact;
                @FirstTouchContact.canceled -= m_Wrapper.m_TouchActionsCallbackInterface.OnFirstTouchContact;
                @FirstTouchPosition.started -= m_Wrapper.m_TouchActionsCallbackInterface.OnFirstTouchPosition;
                @FirstTouchPosition.performed -= m_Wrapper.m_TouchActionsCallbackInterface.OnFirstTouchPosition;
                @FirstTouchPosition.canceled -= m_Wrapper.m_TouchActionsCallbackInterface.OnFirstTouchPosition;
                @SecondTouchContact.started -= m_Wrapper.m_TouchActionsCallbackInterface.OnSecondTouchContact;
                @SecondTouchContact.performed -= m_Wrapper.m_TouchActionsCallbackInterface.OnSecondTouchContact;
                @SecondTouchContact.canceled -= m_Wrapper.m_TouchActionsCallbackInterface.OnSecondTouchContact;
                @SecondTouchPosition.started -= m_Wrapper.m_TouchActionsCallbackInterface.OnSecondTouchPosition;
                @SecondTouchPosition.performed -= m_Wrapper.m_TouchActionsCallbackInterface.OnSecondTouchPosition;
                @SecondTouchPosition.canceled -= m_Wrapper.m_TouchActionsCallbackInterface.OnSecondTouchPosition;
            }
            m_Wrapper.m_TouchActionsCallbackInterface = instance;
            if (instance != null)
            {
                @FirstTouchContact.started += instance.OnFirstTouchContact;
                @FirstTouchContact.performed += instance.OnFirstTouchContact;
                @FirstTouchContact.canceled += instance.OnFirstTouchContact;
                @FirstTouchPosition.started += instance.OnFirstTouchPosition;
                @FirstTouchPosition.performed += instance.OnFirstTouchPosition;
                @FirstTouchPosition.canceled += instance.OnFirstTouchPosition;
                @SecondTouchContact.started += instance.OnSecondTouchContact;
                @SecondTouchContact.performed += instance.OnSecondTouchContact;
                @SecondTouchContact.canceled += instance.OnSecondTouchContact;
                @SecondTouchPosition.started += instance.OnSecondTouchPosition;
                @SecondTouchPosition.performed += instance.OnSecondTouchPosition;
                @SecondTouchPosition.canceled += instance.OnSecondTouchPosition;
            }
        }
    }
    public TouchActions @Touch => new TouchActions(this);
    public interface ITouchActions
    {
        void OnFirstTouchContact(InputAction.CallbackContext context);
        void OnFirstTouchPosition(InputAction.CallbackContext context);
        void OnSecondTouchContact(InputAction.CallbackContext context);
        void OnSecondTouchPosition(InputAction.CallbackContext context);
    }
}
